package vue;
import javax.swing.*;

import vue.onglets.ListeOnglets;
import vue.util.Util;
import controle.*;

public class BarreMenu extends JMenuBar
{
	private static final long serialVersionUID = 1L;
	private ListeOnglets listeOnglets;
	private JMenu menu,menu2;
	private JMenuItem it2D,it3D,itOuvrir,itFermer,itFermertout,itEnregistrer,
	itEnregistrersous,itImprimer,itExportPDF,itQuitter,itAide,itApropos;	
	
	public BarreMenu(ListeOnglets listeOnglets)
	{	
		this.listeOnglets = listeOnglets;
		
		// menu Fichier
		menu = new JMenu("Fichier");
		menu.setMnemonic('F');
		
		menu2 = new JMenu("Nouveau");
		menu2.setMnemonic('N');
		menu2.setIcon(Util.createImageIcon("img/new.png"));
		
		it2D = new JMenuItem("2D");
		it2D.setMnemonic('2');
		it2D.setActionCommand("nouveau2D");
		it2D.setAccelerator(KeyStroke.getKeyStroke("F2"));		
		menu2.add(it2D);
		
		it3D = new JMenuItem("3D");
		it3D.setMnemonic('3');
		it3D.setActionCommand("nouveau3D");
		it3D.setAccelerator(KeyStroke.getKeyStroke("F3"));
		menu2.add(it3D);
		
		menu.add(menu2);
		
		itOuvrir = new JMenuItem("Ouvrir...");
		itOuvrir.setMnemonic('O');
		itOuvrir.setActionCommand("ouvrir");
		itOuvrir.setIcon(Util.createImageIcon("img/open.png"));
		itOuvrir.setAccelerator(KeyStroke.getKeyStroke("ctrl O"));
		menu.add(itOuvrir);
		menu.addSeparator();
		
		itFermer = new JMenuItem("Fermer");
		itFermer.setMnemonic('F');
		itFermer.setActionCommand("fermer");
		itFermer.setIcon(Util.createImageIcon("img/no.png"));
		itFermer.setAccelerator(KeyStroke.getKeyStroke("ctrl W"));
		menu.add(itFermer);
		
		itFermertout = new JMenuItem("Fermer tout");
		itFermertout.setMnemonic('T');
		itFermertout.setActionCommand("fermer_tout");
		itFermertout.setIcon(Util.createImageIcon("img/no.png"));
		itFermertout.setAccelerator(KeyStroke.getKeyStroke("ctrl shift W"));
		menu.add(itFermertout);
		menu.addSeparator();
		
		itEnregistrer = new JMenuItem("Enregistrer");
		itEnregistrer.setMnemonic('g');
		itEnregistrer.setActionCommand("enregistrer");
		itEnregistrer.setIcon(Util.createImageIcon("img/save.png"));
		itEnregistrer.setAccelerator(KeyStroke.getKeyStroke("ctrl S"));
		menu.add(itEnregistrer);
		
		itEnregistrersous = new JMenuItem("Enregistrer sous...");
		itEnregistrersous.setMnemonic('r');
		itEnregistrersous.setActionCommand("enregistrer_sous");
		itEnregistrersous.setIcon(Util.createImageIcon("img/save_as.png"));			
		menu.add(itEnregistrersous);
		menu.addSeparator();
		
		itImprimer = new JMenuItem("Imprimer...");
		itImprimer.setMnemonic('I');
		itImprimer.setActionCommand("imprimer");
		itImprimer.setIcon(Util.createImageIcon("img/print.png"));
		itImprimer.setAccelerator(KeyStroke.getKeyStroke("ctrl P"));
		menu.add(itImprimer);	
		menu.addSeparator();
		
		itExportPDF = new JMenuItem("Exporter en PDF");
		itExportPDF.setMnemonic('E');
		itExportPDF.setActionCommand("export_pdf");
		itExportPDF.setIcon(Util.createImageIcon("img/pdf.gif"));	
		menu.add(itExportPDF);
		menu.addSeparator();
		
		itQuitter = new JMenuItem("Quitter");
		itQuitter.setMnemonic('Q');
		itQuitter.setActionCommand("quitter");
		itQuitter.setIcon(Util.createImageIcon("img/exit.png"));
		itQuitter.setAccelerator(KeyStroke.getKeyStroke("alt F4"));	
		menu.add(itQuitter);	
		
		this.add(menu);
		
		// menu ?
		menu = new JMenu("?");
		menu.setMnemonic('?');
		
		itAide = new JMenuItem("Aide sur Simplexe");
		itAide.setMnemonic('A');
		itAide.setActionCommand("aide");
		itAide.setIcon(Util.createImageIcon("img/help.png"));
		itAide.setAccelerator(KeyStroke.getKeyStroke("F1"));		
		
		menu.add(itAide);
		
		itApropos = new JMenuItem("A propos de...");
		itApropos.setMnemonic('p');
		itApropos.setActionCommand("aproposde");
		itApropos.setIcon(Util.createImageIcon("img/info.png"));
		itApropos.setAccelerator(KeyStroke.getKeyStroke("ctrl I"));		
		
		menu.add(itApropos);		
		this.add(menu);
		
		this.agirItemsOnglet();
	}
	
	public void ajoutItemsListener(ControleActionMenu cam)
	{
		it2D.addActionListener(cam);
		it3D.addActionListener(cam);
		itOuvrir.addActionListener(cam);
		itFermer.addActionListener(cam);
		itFermertout.addActionListener(cam);
		itEnregistrer.addActionListener(cam);
		itEnregistrersous.addActionListener(cam);
		itImprimer.addActionListener(cam);
		itExportPDF.addActionListener(cam);
		itQuitter.addActionListener(cam);
		itAide.addActionListener(cam);
		itApropos.addActionListener(cam);
	}
	
	public void agirItemsOnglet()
	{
		if(listeOnglets.getComponentCount() == 0)
		{
			this.desactiverItemsOnglet();
		}
		else
		{
			this.activerItemsOnglet();
		}
	}
	
	private void activerItemsOnglet()
	{
		itFermer.setEnabled(true);
		itFermertout.setEnabled(true);
		itEnregistrer.setEnabled(true);
		itEnregistrersous.setEnabled(true);
		itImprimer.setEnabled(true);
		itExportPDF.setEnabled(true);
	}
	
	private void desactiverItemsOnglet()
	{
		itFermer.setEnabled(false);
		itFermertout.setEnabled(false);
		itEnregistrer.setEnabled(false);
		itEnregistrersous.setEnabled(false);
		itImprimer.setEnabled(false);
		itExportPDF.setEnabled(false);
	}
}
